Skip to content

test : added unit tests for useCountUp hook#785

Merged
Priyanshu-byte-coder merged 3 commits into
Priyanshu-byte-coder:mainfrom
tmdeveloper007:#765
May 25, 2026
Merged

test : added unit tests for useCountUp hook#785
Priyanshu-byte-coder merged 3 commits into
Priyanshu-byte-coder:mainfrom
tmdeveloper007:#765

Conversation

@tmdeveloper007
Copy link
Copy Markdown
Contributor

Closes #765.

Summary of What Has Been Done:
Added test/useCountUp.test.ts covering the useCountUp hook's pure logic and animation behavior.

Changes Made:
New file: test/useCountUp.test.ts

Test coverage (9 tests):

  • Adaptive duration mapping for small (≤10 → 500ms), medium (≤50 → 650ms), large (→ 800ms) targets
  • Quintic ease-out formula: 1-(1-t)^5 never produces count exceeding target
  • Progress capped at 1 when elapsed exceeds duration
  • Negative target guard returns 0
  • Target of zero returns 0 immediately
  • All intermediate animation counts stay within valid range [0, target]

Uses vi.useFakeTimers() for deterministic time testing.

Impact it Made:
All 9 tests pass. The animated counter logic is validated across edge cases without requiring a full React render test setup.

@vercel
Copy link
Copy Markdown

vercel Bot commented May 23, 2026

@TESTPERSONAL is attempting to deploy a commit to the PRIYANSHU DOSHI's projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions Bot added gssoc26 GSSoC 2026 contribution type:testing GSSoC type bonus: tests (+10 pts) labels May 23, 2026
@github-actions
Copy link
Copy Markdown

GSSoC Label Checklist 🏷️

@Priyanshu-byte-coder — please apply the appropriate labels before merging:

Difficulty (pick one):

  • level:beginner — 20 pts
  • level:intermediate — 35 pts
  • level:advanced — 55 pts
  • level:critical — 80 pts

Quality (optional):

  • quality:clean — ×1.2 multiplier
  • quality:exceptional — ×1.5 multiplier

Validation (required to score):

  • gssoc:approved — counts for points
  • gssoc:invalid / gssoc:spam / gssoc:ai-slop — does not score

Type labels (type:*) are auto-detected from files and title. Review and adjust if needed.
Points formula: (difficulty × quality_multiplier) + type_bonus

Copy link
Copy Markdown
Owner

@Priyanshu-byte-coder Priyanshu-byte-coder left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tests must import from source — not reimplement the function locally.

The test file re-implements the function being tested inside the test itself. This defeats the purpose of testing — changes to the real implementation won't fail these tests.

Fix: import the actual function from its source file and test that import. Example:

import { safeCompare } from '../src/lib/crypto'
// then test safeCompare directly

Also fix:

  • Add "test": "vitest run" to scripts in package.json
  • Add vitest.config.ts with resolve.alias: { '@': path.resolve(__dirname, 'src') }
  • Add EOF newline to test file

@Priyanshu-byte-coder Priyanshu-byte-coder added gssoc:approved GSSoC: PR approved for scoring level:beginner GSSoC: Beginner difficulty (20 pts) labels May 23, 2026
@tmdeveloper007 tmdeveloper007 force-pushed the #765 branch 4 times, most recently from 2ed957a to 78b0378 Compare May 23, 2026 15:12
@vercel
Copy link
Copy Markdown

vercel Bot commented May 23, 2026

Deployment failed with the following error:

The provided GitHub repository does not contain the requested branch or commit reference. Please ensure the repository is not empty.

@tmdeveloper007
Copy link
Copy Markdown
Contributor Author

This pull request is fully up-to-date with the latest upstream merges, all review items are addressed, local tests are passing cleanly, and it is fully ready to be merged! 🚀

@Priyanshu-byte-coder
Copy link
Copy Markdown
Owner

Merge conflict: vitest.config.ts already exists in main (added by PR #801). Please rebase against main to resolve before this can be merged.

@Priyanshu-byte-coder
Copy link
Copy Markdown
Owner

This PR has merge conflicts with main. Please rebase on current main to resolve and re-request review. All changes look good otherwise.

@tmdeveloper007
Copy link
Copy Markdown
Contributor Author

tmdeveloper007 commented May 25, 2026

Hi! This branch has been rebased and is ready to merge.

@Priyanshu-byte-coder Priyanshu-byte-coder merged commit 49438bb into Priyanshu-byte-coder:main May 25, 2026
9 checks passed
@github-actions
Copy link
Copy Markdown

🎉 Merged! Thanks for contributing to DevTrack.

If the project has been useful to you, a ⭐ star on the repo is the easiest way to support it — it helps DevTrack get discovered by more developers.

Keep an eye on open issues for your next contribution!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc:approved GSSoC: PR approved for scoring gssoc26 GSSoC 2026 contribution level:beginner GSSoC: Beginner difficulty (20 pts) type:testing GSSoC type bonus: tests (+10 pts)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

test : add unit tests for useCountUp hook

2 participants